/*
 * Copyright (C) 2015 Actor LLC. <https://actor.im>
 */

package im.actor.sdk.view.emoji.smiles;

import java.util.ArrayList;

import im.actor.sdk.view.emoji.keyboard.emoji.smiles.OnRecentChangeListener;

public class SmilesPack {
    public static final Long[] STANDART = new Long[]
            {
                    0xD83DDE0AL,
                    0xD83DDE03L,
                    0xD83DDE09L,
                    0xD83DDE06L,
                    0xD83DDE1CL,
                    0xD83DDE0BL,
                    0xD83DDE0DL,
                    0xD83DDE0EL,
                    0xD83DDE12L,
                    0xD83DDE0FL,
                    0xD83DDE14L,
                    0xD83DDE22L,
                    0xD83DDE2DL,
                    0xD83DDE29L,
                    0xD83DDE28L,
                    0xD83DDE10L,
                    0xD83DDE0CL,
                    0xD83DDE04L,
                    0xD83DDE07L,
                    0xD83DDE30L,
                    0xD83DDE32L,
                    0xD83DDE33L,
                    0xD83DDE37L,
                    0xD83DDE02L,
                    0x2764L,
                    0xD83DDE1AL,
                    0xD83DDE15L,
                    0xD83DDE2FL,
                    0xD83DDE26L,
                    0xD83DDE35L,
                    0xD83DDE20L,
                    0xD83DDE21L,
                    0xD83DDE1DL,
                    0xD83DDE34L,
                    0xD83DDE18L,
                    0xD83DDE1FL,
                    0xD83DDE2CL,
                    0xD83DDE36L,
                    0xD83DDE2AL,
                    0xD83DDE2BL,
                    0x263AL,
                    0xD83DDE00L,
                    0xD83DDE25L,
                    0xD83DDE1BL,
                    0xD83DDE16L,
                    0xD83DDE24L,
                    0xD83DDE23L,
                    0xD83DDE27L,
                    0xD83DDE11L,
                    0xD83DDE05L,
                    0xD83DDE2EL,
                    0xD83DDE1EL,
                    0xD83DDE19L,
                    0xD83DDE13L,
                    0xD83DDE01L,
                    0xD83DDE31L,
                    0xD83DDE08L,
                    0xD83DDC7FL,
                    0xD83DDC7DL,
                    0xD83DDC4DL,
                    0xD83DDC4EL,
                    0x261DL,
                    0x270CL,
                    0xD83DDC4CL,
                    0xD83DDC4FL,
                    0xD83DDC4AL,
                    0x270BL,
                    0xD83DDE4FL,
                    0xD83DDC43L,
                    0xD83DDC46L,
                    0xD83DDC47L,
                    0xD83DDC48L,
                    0xD83DDCAAL,
                    0xD83DDC42L,
            };

    public static final Long[] TRANSPORT = new Long[]
            {
                    0xD83DDCA1L,
                    0xD83DDCA3L,
                    0xD83DDCA5L,
                    0xD83DDCA7L,
                    0xD83DDCA8L,
                    0xD83DDCACL,
                    0xD83DDCB0L,
                    0xD83DDCB3L,
                    0xD83DDCB4L,
                    0xD83DDCB5L,
                    0xD83DDCB6L,
                    0xD83DDCB7L,
                    0xD83DDCB8L,
                    0xD83DDCBAL,
                    0xD83DDCBBL,
                    0xD83DDCBCL,
                    0xD83DDCBDL,
                    0xD83DDCBEL,
                    0xD83DDCBFL,
                    0xD83DDCC0L,
                    0xD83DDCC4L,
                    0xD83DDCC5L,
                    0xD83DDCC7L,
                    0xD83DDCC8L,
                    0xD83DDCC9L,
                    0xD83DDCCAL,
                    0xD83DDCCBL,
                    0xD83DDCCCL,
                    0xD83DDCCDL,
                    0xD83DDCCEL,
                    0xD83DDCD0L,
                    0xD83DDCD1L,
                    0xD83DDCD2L,
                    0xD83DDCD3L,
                    0xD83DDCD4L,
                    0xD83DDCD5L,
                    0xD83DDCD6L,
                    0xD83DDCD7L,
                    0xD83DDCD8L,
                    0xD83DDCD9L,
                    0xD83DDCDAL,
                    0xD83DDCDCL,
                    0xD83DDCDDL,
                    0xD83DDCDFL,
                    0xD83DDCE0L,
                    0xD83DDCE1L,
                    0xD83DDCE2L,
                    0xD83DDCE6L,
                    0xD83DDCEDL,
                    0xD83DDCEEL,
                    0xD83DDCEFL,
                    0xD83DDCF0L,
                    0xD83DDCF1L,
                    0xD83DDCF7L,
                    0xD83DDCF9L,
                    0xD83DDCFAL,
                    0xD83DDCFBL,
                    0xD83DDCFCL,
                    0xD83DDD06L,
                    0xD83DDD0EL,
                    0xD83DDD11L,
                    0xD83DDD14L,
                    0xD83DDD16L,
                    0xD83DDD25L,
                    0xD83DDD26L,
                    0xD83DDD27L,
                    0xD83DDD28L,
                    0xD83DDD29L,
                    0xD83DDD2AL,
                    0xD83DDD2BL,
                    0xD83DDD2CL,
                    0xD83DDD2DL,
                    0xD83DDD2EL,
                    0xD83DDD31L,
                    0xD83DDDFFL,
                    0xD83DDE80L,
                    0xD83DDE81L,
                    0xD83DDE82L,
                    0xD83DDE83L,
                    0xD83DDE84L,
                    0xD83DDE85L,
                    0xD83DDE86L,
                    0xD83DDE87L,
                    0xD83DDE88L,
                    0xD83DDE8AL,
                    0xD83DDE8CL,
                    0xD83DDE8DL,
                    0xD83DDE8EL,
                    0xD83DDE8FL,
                    0xD83DDE90L,
                    0xD83DDE91L,
                    0xD83DDE92L,
                    0xD83DDE93L,
                    0xD83DDE94L,
                    0xD83DDE95L,
                    0xD83DDE96L,
                    0xD83DDE97L,
                    0xD83DDE98L,
                    0xD83DDE99L,
                    0xD83DDE9AL,
                    0xD83DDE9BL,
                    0xD83DDE9CL,
                    0xD83DDE9DL,
                    0xD83DDE9EL,
                    0xD83DDE9FL,
                    0xD83DDEA0L,
                    0xD83DDEA1L,
                    0xD83DDEA3L,
                    0xD83DDEA4L,
                    0xD83DDEA7L,
                    0xD83DDEA8L,
                    0xD83DDEAAL,
                    0xD83DDEACL,
                    0xD83DDEB4L,
                    0xD83DDEB5L,
                    0xD83DDEB6L,
                    0xD83DDEBDL,
                    0xD83DDEBFL,
                    0xD83DDEC0L,
                    0xD83CDDE8D83CDDF3L,
                    0xD83CDDE9D83CDDEAL,
                    0xD83CDDEAD83CDDF8L,
                    0xD83CDDEBD83CDDF7L,
                    0xD83CDDECD83CDDE7L,
                    0xD83CDDEED83CDDF9L,
                    0xD83CDDEFD83CDDF5L,
                    0xD83CDDF0D83CDDF7L,
                    0xD83CDDF7D83CDDFAL,
                    0xD83CDDFAD83CDDF8L
            };

    public static final Long[] NATURE = new Long[]
            {
                    0xD83DDC28L,
                    0xD83DDC0EL,
                    0xD83DDC0FL,
                    0xD83DDC1CL,
                    0xD83DDC2BL,
                    0xD83DDC2EL,
                    0xD83DDC03L,
                    0xD83DDC3BL,
                    0xD83DDC3CL,
                    0xD83DDC05L,
                    0xD83DDC13L,
                    0xD83DDC18L,
                    0xD83DDC36L,
                    0xD83DDC31L,
                    0xD83DDC37L,
                    0xD83DDC11L,
                    0x26C4L,
                    0x2600L,
                    0xD83CDF3AL,
                    0xD83CDF3BL,
                    0xD83CDF3CL,
                    0xD83CDF3DL,
                    0xD83CDF4BL,
                    0xD83CDF4DL,
                    0xD83CDF4EL,
                    0xD83CDF4FL,
                    0xD83CDF6DL,
                    0xD83CDF37L,
                    0xD83CDF38L,
                    0xD83CDF46L,
                    0xD83CDF49L,
                    0xD83CDF50L,
                    0xD83CDF51L,
                    0xD83CDF53L,
                    0xD83CDF54L,
                    0xD83CDF55L,
                    0xD83CDF56L,
                    0xD83CDF57L,
                    0xD83CDF69L,
                    0xD83CDF83L,
                    0xD83DDE3AL,
                    0xD83DDE38L,
                    0xD83DDE39L,
                    0xD83DDE3CL,
                    0xD83DDE3DL,
                    0xD83DDE3EL,
                    0xD83DDE3FL,
                    0xD83DDE3BL,
                    0xD83DDE40L,
                    0xD83CDF0DL,
                    0xD83CDF1BL,
                    0xD83CDF1DL,
                    0xD83CDF1EL,
                    0xD83CDF30L,
                    0xD83CDF31L,
                    0xD83CDF32L,
                    0xD83CDF33L,
                    0xD83CDF34L,
                    0xD83CDF35L,
                    0xD83CDF3EL,
                    0xD83CDF3FL,
                    0xD83CDF40L,
                    0xD83CDF41L,
                    0xD83CDF42L,
                    0xD83CDF43L,
                    0xD83CDF44L,
                    0xD83CDF47L,
                    0xD83CDF48L,
                    0xD83DDC00L,
                    0xD83DDC01L,
                    0xD83DDC02L,
                    0xD83DDC04L,
                    0xD83DDC06L,
                    0xD83DDC07L,
                    0xD83DDC08L,
                    0xD83DDC09L,
                    0xD83DDC0AL,
                    0xD83DDC0BL,
                    0xD83DDC0CL,
                    0xD83DDC0DL,
                    0xD83DDC10L,
                    0xD83DDC12L,
                    0xD83DDC14L,
                    0xD83DDC15L,
                    0xD83DDC16L,
                    0xD83DDC17L,
                    0xD83DDC19L,
                    0xD83DDC1AL,
                    0xD83DDC1BL,
                    0xD83DDC1DL,
                    0xD83DDC1EL,
                    0xD83DDC1FL,
                    0xD83DDC20L,
                    0xD83DDC21L,
                    0xD83DDC22L,
                    0xD83DDC23L,
                    0xD83DDC24L,
                    0xD83DDC25L,
                    0xD83DDC26L,
                    0xD83DDC27L,
                    0xD83DDC29L,
                    0xD83DDC2AL,
                    0xD83DDC2CL,
                    0xD83DDC2DL,
                    0xD83DDC2FL,
                    0xD83DDC30L,
                    0xD83DDC32L,
                    0xD83DDC33L,
                    0xD83DDC34L,
                    0xD83DDC35L,
                    0xD83DDC38L,
                    0xD83DDC39L,
                    0xD83DDC3AL,
                    0xD83DDC3DL,
                    0xD83DDC3EL,
                    0xD83DDE48L,
                    0xD83DDE49L,
                    0xD83DDE4AL,
                    0xD83CDF4AL,
                    0x26C5L,
                    0xD83CDF4CL,
                    0xD83CDF39L,
                    0xD83CDF45L,
                    0xD83CDF52L,
                    0xD83CDF84L,
            };

    public static final Long[] UNSORTED = new Long[]
            {
                    0xD83CDF5AL,
                    0xD83CDF5BL,
                    0xD83CDF5CL,
                    0xD83CDF5DL,
                    0xD83CDF5EL,
                    0xD83CDF5FL,
                    0xD83CDF60L,
                    0xD83CDF61L,
                    0xD83CDF62L,
                    0xD83CDF63L,
                    0xD83CDF64L,
                    0xD83CDF65L,
                    0xD83CDF66L,
                    0xD83CDF67L,
                    0xD83CDF68L,
                    0xD83CDF6AL,
                    0xD83CDF6BL,
                    0xD83CDF6CL,
                    0xD83CDF6EL,
                    0xD83CDF6FL,
                    0xD83CDF70L,
                    0xD83CDF71L,
                    0xD83CDF72L,
                    0xD83CDF73L,
                    0xD83CDF74L,
                    0xD83CDF75L,
                    0xD83CDF76L,
                    0xD83CDF79L,
                    0xD83CDF7CL,
                    0xD83DDC8BL,
                    0xD83DDCA9L,
                    0x2744L,
                    0xD83CDF77L,
                    0xD83CDF78L,
                    0xD83CDF85L,
                    0xD83DDCA6L,
                    0xD83DDC7AL,
                    0xD83DDD1EL,
                    0xD83DDC79L,
                    0x26BDL,
                    0xD83CDF1FL,
                    0xD83CDF7AL,
                    0xD83CDF7BL,
                    0xD83CDF81L,
                    0xD83CDF82L,
                    0xD83CDFC1L,
                    0xD83CDFC6L,
                    0xD83DDC94L,
                    0xD83DDCADL,
                    0x23F3L,
                    0x26BEL,
                    0xD83CDFAAL,
                    0xD83CDFB1L,
                    0xD83CDFB2L,
                    0xD83CDFB7L,
                    0xD83CDFB8L,
                    0xD83CDFBEL,
                    0xD83CDFC0L,
                    0xD83CDFE6L,
                    0x23F0L,
                    0x2601L,
                    0x260EL,
                    0x2615L,
                    0x267BL,
                    0x26A0L,
                    0x26A1L,
                    0x26D4L,
                    0x26EAL,
                    0x26F3L,
                    0x26F5L,
                    0x26FDL,
                    0x2702L,
                    0x2708L,
                    0x2709L,
                    0x270AL,
                    0x270FL,
                    0x2712L,
                    0x2728L,
                    0xD83CDC04L,
                    0xD83CDCCFL,
                    0xD83CDD98L,
                    0xD83CDF02L,
                    0xD83CDF80L,
                    0xD83CDF88L,
                    0xD83CDF89L,
                    0xD83CDF8AL,
                    0xD83CDF8BL,
                    0xD83CDF8CL,
                    0xD83CDF8DL,
                    0xD83CDF8EL,
                    0xD83CDF8FL,
                    0xD83CDF90L,
                    0xD83CDF92L,
                    0xD83CDF93L,
                    0xD83CDFA3L,
                    0xD83CDFA4L,
                    0xD83CDFA7L,
                    0xD83CDFA8L,
                    0xD83CDFA9L,
                    0xD83CDFABL,
                    0xD83CDFACL,
                    0xD83CDFADL,
                    0xD83CDFAFL,
                    0xD83CDFB0L,
                    0xD83CDFB3L,
                    0xD83CDFB4L,
                    0xD83CDFB9L,
                    0xD83CDFBAL,
                    0xD83CDFBBL,
                    0xD83CDFBDL,
                    0xD83CDFBFL,
                    0xD83CDFC2L,
                    0xD83CDFC3L,
                    0xD83CDFC4L,
                    0xD83CDFC7L,
                    0xD83CDFC8L,
                    0xD83CDFC9L,
                    0xD83CDFCAL,
                    0xD83DDC40L,
                    0xD83DDC44L,
                    0xD83DDC45L,
                    0xD83DDC4BL,
                    0xD83DDC50L,
                    0xD83DDC51L,
                    0xD83DDC52L,
                    0xD83DDC53L,
                    0xD83DDC54L,
                    0xD83DDC55L,
                    0xD83DDC56L,
                    0xD83DDC57L,
                    0xD83DDC58L,
                    0xD83DDC59L,
                    0xD83DDC5AL,
                    0xD83DDC5BL,
                    0xD83DDC5CL,
                    0xD83DDC5DL,
                    0xD83DDC5EL,
                    0xD83DDC5FL,
                    0xD83DDC60L,
                    0xD83DDC61L,
                    0xD83DDC62L,
                    0xD83DDC63L,
                    0xD83DDC66L,
                    0xD83DDC67L,
                    0xD83DDC68L,
                    0xD83DDC69L,
                    0xD83DDC6AL,
                    0xD83DDC6BL,
                    0xD83DDC6CL,
                    0xD83DDC6DL,
                    0xD83DDC6EL,
                    0xD83DDC6FL,
                    0xD83DDC70L,
                    0xD83DDC71L,
                    0xD83DDC72L,
                    0xD83DDC73L,
                    0xD83DDC74L,
                    0xD83DDC75L,
                    0xD83DDC76L,
                    0xD83DDC77L,
                    0xD83DDC78L,
                    0xD83DDC7BL,
                    0xD83DDC7CL,
                    0xD83DDC7EL,
                    0xD83DDC80L,
                    0xD83DDC81L,
                    0xD83DDC82L,
                    0xD83DDC83L,
                    0xD83DDC84L,
                    0xD83DDC85L,
                    0xD83DDC86L,
                    0xD83DDC87L,
                    0xD83DDC88L,
                    0xD83DDC89L,
                    0xD83DDC8AL,
                    0xD83DDC8CL,
                    0xD83DDC8DL,
                    0xD83DDC8EL,
                    0xD83DDC8FL,
                    0xD83DDC90L,
                    0xD83DDC91L,
                    0xD83DDC92L,
                    0xD83DDC93L,
                    0xD83DDC95L,
                    0xD83DDC96L,
                    0xD83DDC97L,
                    0xD83DDC98L,
                    0xD83DDC99L,
                    0xD83DDC9AL,
                    0xD83DDC9BL,
                    0xD83DDC9CL,
                    0xD83DDC9DL,
                    0xD83DDC9EL,
                    0xD83DDC9FL,
                    0xD83DDE45L,
                    0xD83DDE46L,
                    0xD83DDE47L,
                    0xD83DDE4BL,
                    0xD83DDE4CL,
                    0xD83DDE4EL,

            };

    public static final Long[] ALL_SMILEYS = new Long[]{0xD83DDE0AL,
            0xD83DDE03L,
            0xD83DDE09L,
            0xD83DDE06L,
            0xD83DDE1CL,
            0xD83DDE0BL,
            0xD83DDE0DL,
            0xD83DDE0EL,
            0xD83DDE12L,
            0xD83DDE0FL,
            0xD83DDE14L,
            0xD83DDE22L,
            0xD83DDE2DL,
            0xD83DDE29L,
            0xD83DDE28L,
            0xD83DDE10L,
            0xD83DDE0CL,
            0xD83DDE04L,
            0xD83DDE07L,
            0xD83DDE30L,
            0xD83DDE32L,
            0xD83DDE33L,
            0xD83DDE37L,
            0xD83DDE02L,
            0x2764L,
            0xD83DDE1AL,
            0xD83DDE15L,
            0xD83DDE2FL,
            0xD83DDE26L,
            0xD83DDE35L,
            0xD83DDE20L,
            0xD83DDE21L,
            0xD83DDE1DL,
            0xD83DDE34L,
            0xD83DDE18L,
            0xD83DDE1FL,
            0xD83DDE2CL,
            0xD83DDE36L,
            0xD83DDE2AL,
            0xD83DDE2BL,
            0x263AL,
            0xD83DDE00L,
            0xD83DDE25L,
            0xD83DDE1BL,
            0xD83DDE16L,
            0xD83DDE24L,
            0xD83DDE23L,
            0xD83DDE27L,
            0xD83DDE11L,
            0xD83DDE05L,
            0xD83DDE2EL,
            0xD83DDE1EL,
            0xD83DDE19L,
            0xD83DDE13L,
            0xD83DDE01L,
            0xD83DDE31L,
            0xD83DDE08L,
            0xD83DDC7FL,
            0xD83DDC7DL,
            0xD83DDC4DL,
            0xD83DDC4EL,
            0x261DL,
            0x270CL,
            0xD83DDC4CL,
            0xD83DDC4FL,
            0xD83DDC4AL,
            0x270BL,
            0xD83DDE4FL,
            0xD83DDC43L,
            0xD83DDC46L,
            0xD83DDC47L,
            0xD83DDC48L,
            0xD83DDCAAL,
            0xD83DDC42L,
            0xD83DDC8BL,
            0xD83DDCA9L,
            0x2744L,
            0xD83CDF4AL,
            0xD83CDF77L,
            0xD83CDF78L,
            0xD83CDF85L,
            0xD83DDCA6L,
            0xD83DDC7AL,
            0xD83DDC28L,
            0xD83DDD1EL,
            0xD83DDC79L,
            0x26BDL,
            0x26C5L,
            0xD83CDF1FL,
            0xD83CDF4CL,
            0xD83CDF7AL,
            0xD83CDF7BL,
            0xD83CDF39L,
            0xD83CDF45L,
            0xD83CDF52L,
            0xD83CDF81L,
            0xD83CDF82L,
            0xD83CDF84L,
            0xD83CDFC1L,
            0xD83CDFC6L,
            0xD83DDC0EL,
            0xD83DDC0FL,
            0xD83DDC1CL,
            0xD83DDC2BL,
            0xD83DDC2EL,
            0xD83DDC03L,
            0xD83DDC3BL,
            0xD83DDC3CL,
            0xD83DDC05L,
            0xD83DDC13L,
            0xD83DDC18L,
            0xD83DDC94L,
            0xD83DDCADL,
            0xD83DDC36L,
            0xD83DDC31L,
            0xD83DDC37L,
            0xD83DDC11L,
            0x23F3L,
            0x26BEL,
            0x26C4L,
            0x2600L,
            0xD83CDF3AL,
            0xD83CDF3BL,
            0xD83CDF3CL,
            0xD83CDF3DL,
            0xD83CDF4BL,
            0xD83CDF4DL,
            0xD83CDF4EL,
            0xD83CDF4FL,
            0xD83CDF6DL,
            0xD83CDF37L,
            0xD83CDF38L,
            0xD83CDF46L,
            0xD83CDF49L,
            0xD83CDF50L,
            0xD83CDF51L,
            0xD83CDF53L,
            0xD83CDF54L,
            0xD83CDF55L,
            0xD83CDF56L,
            0xD83CDF57L,
            0xD83CDF69L,
            0xD83CDF83L,
            0xD83CDFAAL,
            0xD83CDFB1L,
            0xD83CDFB2L,
            0xD83CDFB7L,
            0xD83CDFB8L,
            0xD83CDFBEL,
            0xD83CDFC0L,
            0xD83CDFE6L,
            0xD83DDE38L,
            0xD83DDE39L,
            0xD83DDE3CL,
            0xD83DDE3DL,
            0xD83DDE3EL,
            0xD83DDE3FL,
            0xD83DDE3BL,
            0xD83DDE40L,
            0x23F0L,
            0x2601L,
            0x260EL,
            0x2615L,
            0x267BL,
            0x26A0L,
            0x26A1L,
            0x26D4L,
            0x26EAL,
            0x26F3L,
            0x26F5L,
            0x26FDL,
            0x2702L,
            0x2708L,
            0x2709L,
            0x270AL,
            0x270FL,
            0x2712L,
            0x2728L,
            0xD83CDC04L,
            0xD83CDCCFL,
            0xD83CDD98L,
            0xD83CDF02L,
            0xD83CDF0DL,
            0xD83CDF1BL,
            0xD83CDF1DL,
            0xD83CDF1EL,
            0xD83CDF30L,
            0xD83CDF31L,
            0xD83CDF32L,
            0xD83CDF33L,
            0xD83CDF34L,
            0xD83CDF35L,
            0xD83CDF3EL,
            0xD83CDF3FL,
            0xD83CDF40L,
            0xD83CDF41L,
            0xD83CDF42L,
            0xD83CDF43L,
            0xD83CDF44L,
            0xD83CDF47L,
            0xD83CDF48L,
            0xD83CDF5AL,
            0xD83CDF5BL,
            0xD83CDF5CL,
            0xD83CDF5DL,
            0xD83CDF5EL,
            0xD83CDF5FL,
            0xD83CDF60L,
            0xD83CDF61L,
            0xD83CDF62L,
            0xD83CDF63L,
            0xD83CDF64L,
            0xD83CDF65L,
            0xD83CDF66L,
            0xD83CDF67L,
            0xD83CDF68L,
            0xD83CDF6AL,
            0xD83CDF6BL,
            0xD83CDF6CL,
            0xD83CDF6EL,
            0xD83CDF6FL,
            0xD83CDF70L,
            0xD83CDF71L,
            0xD83CDF72L,
            0xD83CDF73L,
            0xD83CDF74L,
            0xD83CDF75L,
            0xD83CDF76L,
            0xD83CDF79L,
            0xD83CDF7CL,
            0xD83CDF80L,
            0xD83CDF88L,
            0xD83CDF89L,
            0xD83CDF8AL,
            0xD83CDF8BL,
            0xD83CDF8CL,
            0xD83CDF8DL,
            0xD83CDF8EL,
            0xD83CDF8FL,
            0xD83CDF90L,
            0xD83CDF92L,
            0xD83CDF93L,
            0xD83CDFA3L,
            0xD83CDFA4L,
            0xD83CDFA7L,
            0xD83CDFA8L,
            0xD83CDFA9L,
            0xD83CDFABL,
            0xD83CDFACL,
            0xD83CDFADL,
            0xD83CDFAFL,
            0xD83CDFB0L,
            0xD83CDFB3L,
            0xD83CDFB4L,
            0xD83CDFB9L,
            0xD83CDFBAL,
            0xD83CDFBBL,
            0xD83CDFBDL,
            0xD83CDFBFL,
            0xD83CDFC2L,
            0xD83CDFC3L,
            0xD83CDFC4L,
            0xD83CDFC7L,
            0xD83CDFC8L,
            0xD83CDFC9L,
            0xD83CDFCAL,
            0xD83DDC00L,
            0xD83DDC01L,
            0xD83DDC02L,
            0xD83DDC04L,
            0xD83DDC06L,
            0xD83DDC07L,
            0xD83DDC08L,
            0xD83DDC09L,
            0xD83DDC0AL,
            0xD83DDC0BL,
            0xD83DDC0CL,
            0xD83DDC0DL,
            0xD83DDC10L,
            0xD83DDC12L,
            0xD83DDC14L,
            0xD83DDC15L,
            0xD83DDC16L,
            0xD83DDC17L,
            0xD83DDC19L,
            0xD83DDC1AL,
            0xD83DDC1BL,
            0xD83DDC1DL,
            0xD83DDC1EL,
            0xD83DDC1FL,
            0xD83DDC20L,
            0xD83DDC21L,
            0xD83DDC22L,
            0xD83DDC23L,
            0xD83DDC24L,
            0xD83DDC25L,
            0xD83DDC26L,
            0xD83DDC27L,
            0xD83DDC29L,
            0xD83DDC2AL,
            0xD83DDC2CL,
            0xD83DDC2DL,
            0xD83DDC2FL,
            0xD83DDC30L,
            0xD83DDC32L,
            0xD83DDC33L,
            0xD83DDC34L,
            0xD83DDC35L,
            0xD83DDC38L,
            0xD83DDC39L,
            0xD83DDC3AL,
            0xD83DDC3DL,
            0xD83DDC3EL,
            0xD83DDC40L,
            0xD83DDC44L,
            0xD83DDC45L,
            0xD83DDC4BL,
            0xD83DDC50L,
            0xD83DDC51L,
            0xD83DDC52L,
            0xD83DDC53L,
            0xD83DDC54L,
            0xD83DDC55L,
            0xD83DDC56L,
            0xD83DDC57L,
            0xD83DDC58L,
            0xD83DDC59L,
            0xD83DDC5AL,
            0xD83DDC5BL,
            0xD83DDC5CL,
            0xD83DDC5DL,
            0xD83DDC5EL,
            0xD83DDC5FL,
            0xD83DDC60L,
            0xD83DDC61L,
            0xD83DDC62L,
            0xD83DDC63L,
            0xD83DDC66L,
            0xD83DDC67L,
            0xD83DDC68L,
            0xD83DDC69L,
            0xD83DDC6AL,
            0xD83DDC6BL,
            0xD83DDC6CL,
            0xD83DDC6DL,
            0xD83DDC6EL,
            0xD83DDC6FL,
            0xD83DDC70L,
            0xD83DDC71L,
            0xD83DDC72L,
            0xD83DDC73L,
            0xD83DDC74L,
            0xD83DDC75L,
            0xD83DDC76L,
            0xD83DDC77L,
            0xD83DDC78L,
            0xD83DDC7BL,
            0xD83DDC7CL,
            0xD83DDC7EL,
            0xD83DDC80L,
            0xD83DDC81L,
            0xD83DDC82L,
            0xD83DDC83L,
            0xD83DDC84L,
            0xD83DDC85L,
            0xD83DDC86L,
            0xD83DDC87L,
            0xD83DDC88L,
            0xD83DDC89L,
            0xD83DDC8AL,
            0xD83DDC8CL,
            0xD83DDC8DL,
            0xD83DDC8EL,
            0xD83DDC8FL,
            0xD83DDC90L,
            0xD83DDC91L,
            0xD83DDC92L,
            0xD83DDC93L,
            0xD83DDC95L,
            0xD83DDC96L,
            0xD83DDC97L,
            0xD83DDC98L,
            0xD83DDC99L,
            0xD83DDC9AL,
            0xD83DDC9BL,
            0xD83DDC9CL,
            0xD83DDC9DL,
            0xD83DDC9EL,
            0xD83DDC9FL,
            0xD83DDCA1L,
            0xD83DDCA3L,
            0xD83DDCA5L,
            0xD83DDCA7L,
            0xD83DDCA8L,
            0xD83DDCACL,
            0xD83DDCB0L,
            0xD83DDCB3L,
            0xD83DDCB4L,
            0xD83DDCB5L,
            0xD83DDCB6L,
            0xD83DDCB7L,
            0xD83DDCB8L,
            0xD83DDCBAL,
            0xD83DDCBBL,
            0xD83DDCBCL,
            0xD83DDCBDL,
            0xD83DDCBEL,
            0xD83DDCBFL,
            0xD83DDCC0L,
            0xD83DDCC4L,
            0xD83DDCC5L,
            0xD83DDCC7L,
            0xD83DDCC8L,
            0xD83DDCC9L,
            0xD83DDCCAL,
            0xD83DDCCBL,
            0xD83DDCCCL,
            0xD83DDCCDL,
            0xD83DDCCEL,
            0xD83DDCD0L,
            0xD83DDCD1L,
            0xD83DDCD2L,
            0xD83DDCD3L,
            0xD83DDCD4L,
            0xD83DDCD5L,
            0xD83DDCD6L,
            0xD83DDCD7L,
            0xD83DDCD8L,
            0xD83DDCD9L,
            0xD83DDCDAL,
            0xD83DDCDCL,
            0xD83DDCDDL,
            0xD83DDCDFL,
            0xD83DDCE0L,
            0xD83DDCE1L,
            0xD83DDCE2L,
            0xD83DDCE6L,
            0xD83DDCEDL,
            0xD83DDCEEL,
            0xD83DDCEFL,
            0xD83DDCF0L,
            0xD83DDCF1L,
            0xD83DDCF7L,
            0xD83DDCF9L,
            0xD83DDCFAL,
            0xD83DDCFBL,
            0xD83DDCFCL,
            0xD83DDD06L,
            0xD83DDD0EL,
            0xD83DDD11L,
            0xD83DDD14L,
            0xD83DDD16L,
            0xD83DDD25L,
            0xD83DDD26L,
            0xD83DDD27L,
            0xD83DDD28L,
            0xD83DDD29L,
            0xD83DDD2AL,
            0xD83DDD2BL,
            0xD83DDD2CL,
            0xD83DDD2DL,
            0xD83DDD2EL,
            0xD83DDD31L,
            0xD83DDDFFL,
            0xD83DDE3AL,
            0xD83DDE45L,
            0xD83DDE46L,
            0xD83DDE47L,
            0xD83DDE48L,
            0xD83DDE49L,
            0xD83DDE4AL,
            0xD83DDE4BL,
            0xD83DDE4CL,
            0xD83DDE4EL,
            0xD83DDE80L,
            0xD83DDE81L,
            0xD83DDE82L,
            0xD83DDE83L,
            0xD83DDE84L,
            0xD83DDE85L,
            0xD83DDE86L,
            0xD83DDE87L,
            0xD83DDE88L,
            0xD83DDE8AL,
            0xD83DDE8CL,
            0xD83DDE8DL,
            0xD83DDE8EL,
            0xD83DDE8FL,
            0xD83DDE90L,
            0xD83DDE91L,
            0xD83DDE92L,
            0xD83DDE93L,
            0xD83DDE94L,
            0xD83DDE95L,
            0xD83DDE96L,
            0xD83DDE97L,
            0xD83DDE98L,
            0xD83DDE99L,
            0xD83DDE9AL,
            0xD83DDE9BL,
            0xD83DDE9CL,
            0xD83DDE9DL,
            0xD83DDE9EL,
            0xD83DDE9FL,
            0xD83DDEA0L,
            0xD83DDEA1L,
            0xD83DDEA3L,
            0xD83DDEA4L,
            0xD83DDEA7L,
            0xD83DDEA8L,
            0xD83DDEAAL,
            0xD83DDEACL,
            0xD83DDEB4L,
            0xD83DDEB5L,
            0xD83DDEB6L,
            0xD83DDEBDL,
            0xD83DDEBFL,
            0xD83DDEC0L,
            0xD83CDDE8D83CDDF3L,
            0xD83CDDE9D83CDDEAL,
            0xD83CDDEAD83CDDF8L,
            0xD83CDDEBD83CDDF7L,
            0xD83CDDECD83CDDE7L,
            0xD83CDDEED83CDDF9L,
            0xD83CDDEFD83CDDF5L,
            0xD83CDDF0D83CDDF7L,
            0xD83CDDF7D83CDDFAL,
            0xD83CDDFAD83CDDF8L,};

    public static final Long[] RECENT_DEFAULT = new Long[]{

            // todo default recent?
            0xD83DDE37L,
            0xD83DDE21L,
            0xD83DDE33L,
            0xD83DDE0DL,
            0xD83DDE0AL,


    };
    private static ArrayList<Long> recent = new ArrayList<Long>();


    private static OnRecentChangeListener onRecentChangeListener;

    public static void setOnRecentChangeListener(OnRecentChangeListener onRecentChangeListener) {
        SmilesPack.onRecentChangeListener = onRecentChangeListener;
    }

    public static ArrayList<Long> getRecent() {/*
                if (recent.isEmpty()) {
                        recent.addAll(Arrays.asList(RECENT_DEFAULT));
                }
                return recent;*/
        return SmilesRecentsController.getInstance();
    }

    public static void upRecent(Long smileId) {
        SmilesRecentsController.getInstance().push(smileId);
    }
}
